פרק א' למבחן ביסודות מדעי המחשב דוגמא כתוב תכנית הקולט מספר למשתנה N ולאחריו N מספרים שלמים ומדפיס את כמות המספרים המתחלקים ב 3 - ללא שארית. (10 נקודות). כתוב ביטוי בוליאני המייצג את התנאי הבא: ספרת העשרות במספר NUM שווה לספרת האחרות בו והמספר גדול מ 50 -. (המספר NUMהוא דו ספרתי) (10 נקודות)..1.2 I:=24; while I>0 DO writeln(i); I:=I-4; 3. נתון קטע התוכנית: א. מה יהיה הפלט לקטע התוכנית (5 נקודות). ב כתוב קטע תוכנית שקול שבו מופיע המשפט הנתון. (5 נקודות). REPEAT והפלט זהה לפלט הקטע 4. נניח כי בתכנית מופיעה ההצהרה הבאה: VAR LIST:ARRAY[1..100] OF CHAR כתוב קטע תכנית המשים את הערך 'A' לכל האיברים במערך עם המציין האי זוגי (כלומר,LIST[1]:..LIST[5],LIST[3] יהיו בעלי הערך התחילי 'A'), ראה הערך 'B' לכל האיברים במערך עם המציין הזוגי. (10 נקודות). var Num, Sum: integer; Sum:=0; Num:=1; while Num 20 do writeln(num); Sum:=Sum+Num; Num:=Num+2; ); ' סכום המספרים : ' writeln(sum, 5. התבונן בהצהרות ובקטע התוכנית הבא: קטע התוכנית אמור להדפיס את המספרים האי-זוגיים מ 0 - עד 20 ואת סכומם. (5 נקודות) (5 נקודות) א. בקטע נפלה שגיאה, מהי השגיאה? ב. תקן את קטע התכנית כך שיבצע את משימתו
פרק ב' כתוב תוכנית המדפיסה את כל המספרים בני 3 ספרות המקיימים את התנאי הבא: סכום ספרת העשרות והמאות שווה לרבוע ספרת האחדות. אם המספר מקיים את התנאי התוכנית תדפיס אותו. דוגמה: המספר 543 מקיים את התנאי: 32=9=5+4 (15 נקודות).1 הנח כי בתכנית הופיעו ההגדרות וההצהרות הבאות: type Positive=1..maxint; var Num:Positive; Function Sum0fDigit(Num:Positive):Positive; הנח כי הפונקציה SumOfDigit מקבלת מספר שלם חיובי ומחזירה את סכום ספרותיו. א מהו הערך שתחזיר הפונקציה אם ערך הפרמטר Num הוא 45 ו 376 -. (5 נקודות)..2 ב נניח שהפונקציה מחזירה את הערך 9, תן שתי דוגמאות לערך הפרמטר.Num (5 נקודות) ג כתוב קטע תכנית הקולטת סדרה של מספרים חיוביים, סוף הסדרה מצוינת ע"י מספר שלילי, ומדפיסה כל מספר המתחלק בסכום ספרותיו וכמו כן מדפיסה את כמות המספרים המקיימים תנאי זה. לדוגמא: סדרת המספרים - 18 4000 110 550 83 103 המספרים 110 550 18 ו 4000 - מתחלקים בסכום ספרותיהם לכן הפלט יהיה: 18 550 110 4000 כמות המספרים מתחלקים בסכום ספרותיהם: 4 הערה: אין צורך לכתוב את הפונקציה. (5 נקודות). Program Confusion; var X, Y:integer; procedure F(X:integer; var Y: integer); X:=X-Y; Y:=X+Y; (F) 3. נתונה התכנית הבאה:
read(x,y); F(X,Y); Writeln(X,Y); end 5 (כלומר המספר 5 מושם מה יהיה פלט התכנית Confusion כאשר הקלט הוא 2 במשתנה X והמספר 2 מושם במשתנה ). Y (5 נקודות). 5 מה יהיה פלט התכנית Confusion כאשר הקלט הוא 2 ל-( F(X,Y:integer ( procedure 5) נקודות). וכותרת הפרוצדורה משתנה 5 וכותרת הפרוצדורה משתנה מה יהיה פלט התכנית Confusion כאשר הקלט הוא 2 ל-( X,Y:integer. procedure F ( var 5) נקודות).
פרק ג' הנהלת בית הספר החליטה להפיק דו"ח מעקב הישגי התלמידים במקצוע מחשבים. לצורך זה אתה מתבקש לכתוב תכנית הקולטת את ציוני התלמידים במחשבים בשכבת כיתות י' (בשכבה קיימים 200 תלמידים) ומדפיסה את כל הציונים הקטנים מהממוצע..4 א. נסח את הבעיה העומדת בפני ההנהלה כבעיה אלגוריתמית, כלומר, תאר במדויק את הקלט והפלט לאלגוריתם המבוקש. (5 נקודות) ב. בסעיף זה עליך לחשוב על אלגוריתם לפתרון הבעיה שניסחת בסעיף א' ולענות רק על השאלה הבאה: מהם המשתנים או המערכים העיקריים שבהם תשתמש בכתיבת האלגוריתם? לכל משתנה או מערך ציין את שמו ואת טיפוסו, והגדר במשפט אחד את תפקידו. (7 נקודות). ג. כתוב תוכנית בפסקל המממשת את הבעיה והיעזר בתשובתך בסעיף ב' (8 נקודות). 10. במפעל נעלים ארבע מחלקות יצור: מחלקה - 1 נעלי נשים מחלקה - 2 נעלי גברים מחלקה - 3 נעלי ילדים מחלקה - 4 נעלי ספורט לכל סוג נעל קיים מספר בקטלוג המורכב מ 3 - ספרות. ספרת המאות מציינת את קוד המחלקה (1-4) ושאר שתי הספרות מציינות את קוד המוצר. דוגמא: המספר 354 בקטלוג מציין נעל ילדים אשר קוד המוצר שלה הוא 54. כתוב תכנית הקולטת רשימה של מספרי קטלוג של נעלים אשר נמכרו בחודש האחרון. הרשימה מסתיימת במספר 0. הנח כי הקלט תקין. על התכנית להדפיס את מספר זוגות הנעלים שמכרה כל מחלקה במשך החודש ואת מספר זוגות הנעלים שמכר המפעל. עליך להשתמש בפונקציה Hundred המחזירה את ספרת המאות של מספר חיובי שלם בין 3 ספרות. (20 נקודות). פתרון המבחן Program Number;.1 ver N, I, num: integer; ; ) 'הקש מספר שלם ' writln( readln (N); for 1:=1 to N do
read(num); if num mod 3-0 then counter:=counter + 1; ; ) 'מספר המספרים המתחלקים ב 3 - : ' writeln(counter, end. (num mod 10 = num div 10) and (num 50).2 24 20 16 12 84 3. א. פלט התכנית: 1:-24 ; repeat writeln(i); I:=1-4; until i = 0; ב..4 for i:=1 to 100 do if I mod 2=0 then list[i]:= 'B' else list[i]:='a'; א. הטעות היא שנכנס ללולאה אין סופית כיוון שבקידום num ערכו לא יהיה 20. ב. שינוי תנאי הכניסה ללולאה ל- do while Num = 20 Program targil 6;.6 Var 1:integer; for 1:=100 to 999 do digitl: = 1 mod 10; digit2: = 1 mod 100; digit2: = digit2 div 10; digit3: = 1 div 100; if digitl+digit2 = sqr(1) then writeln (1);.5
sum:=0; read (Num); while Num 0 do if Num mod SumOfDigit(Num) = 0 then writeln(num); sum:=sum+1; ;(' כמות המספרים המקיימים את התנאי :' writeln(sum, א. הערכים שתחזיר הפונקציה הם: 9 ו 16 -. ב. ערך הפרמטר : Num 27 או 225 ג..7 5 5 7 8. א. פלט התכנית יהיה: 9 ב. פלט התכנית יהיה: 2 ג. פלט התכנית יהיה: 9 9. א. קלט - ציוני 200 התלמידים במקצוע מחשבים פלט - הציונים הנמוכים מהממוצע. ב. משתנים ומערכים: - avg משתנה לחישוב ממוצע הציונים, טיפוסי ממשי. - sum משתנה עזר לחישוב הממוצע. - grade array מערך לקליטת ציוני התלמידים, טיפוס האיברים במערך - שלם. program grades; const students = 200; type gr ar = array [1..students] of integer; var avg:real; sum,i:integer; grade array_:gr_ar; ג. end. sum:=0; for i:=1 to students do read (grade _ array[i]); sum: =sum + grade _ array [i]; avg:=sum/students; for I:= 1 to students do if grade array [I] avg then write (grade_array [I]:5);
program shoes; var katalog, I:integer; dep1, dep2, dep3, dep4:integer;.10 function hundred(katalog:integer):integer; hundred:=katalog div 100; dep1:=0; dep2; =0; dep3:=0; dep4:0; read(katalog); while katalog 0 do case hundred(katalog) of 1 : dep1 : =dep1+1; 2 : dep2 : =dep2+1; 3 : dep3 : =dep3+1; 4 : dep4 : =dep4+1; read(katalog); write(dep1, dep2, dep3, dep4, (dep1+dep2+dep3+dep4)/4;